package cn.com.yang.datastruct.digui;

/**
 * 递归解决汉诺塔问题
 * @since 2023.08.27
 */
public class HanNuota {
    public static void main(String[] args) {
        move(3,"A","B","C");
    }

    /**
     *
     * @param dish 盘子编号
     * @param from
     * @param temp
     * @param to
     */
    public static void move(int dish,String from ,String temp,String to){
        if (dish==1){
            System.out.println("将第 "+dish+" 个盘子从 "+ from +"移动到塔座"+to);
        }else {
            move(dish-1,from,to,temp);
            System.out.println("将第 "+dish+" 个盘子从 "+from+"移动到目标塔座"+to);
            move(dish-1,temp,from,to);
        }
    }
    /**
     * 将第 1 个盘子从 A移动到塔座C
     * 将第 2 个盘子从 A移动到目标塔座B
     * 将第 1 个盘子从 C移动到塔座B
     * 将第 3 个盘子从 A移动到目标塔座C
     * 将第 1 个盘子从 B移动到塔座A
     * 将第 2 个盘子从 B移动到目标塔座C
     * 将第 1 个盘子从 A移动到塔座C
     */
}
